package cn.lcsjsxy.yxc.objectoriented.继承性;
/*
面对对象的特征之二：com.yang_xc.objectoriented.继承性

一、继承性的好处
1.减少了代码的冗余，提高了代码的复用性
2.便于功能的扩展
3.为之后多态性的使用，提供了前提

二、继承性的格式：class A extends B{}
    A:子类、派生类、subclass
    B：父类、超类、基类、superclass

2.1体现：一旦子类A继承父类B以后，子类A中就获取了父类B中声明的所有的属性和方法
特别的，父类中声明为private的属性或方法，子类继承父类以后，任然认为获取了父类
中私有的结构。只是因为封装性的影响，使得子类不能直接调用父类的结构而已。

2.2子类继承父类以后，还可以定义声明自己特有的属性和方法，实现功能的拓展。
子类和父类的关系，不同于子集和集合的关系。
    extends：延展、扩展

三、java中关于继承性的规定：
1.一个类可以被多个子类继承；
2.Java中类的但继承性：一个类只能有一个父类；
3.子父类是相对的概念。
4.子类直接继承的父类，称为：直接父类。间接继承的父类成为：间接父类
5.子类继承父类以后，就获取了直接父类以及所有简介父类中声明的属性和方法

四、
1.如果我们没有显示的声明一个类的父类的话，则此类继承于java.lang.Object类
2.所有的java类（除java.lang.Object类）都直接或间接的继承于java.lang.Object类
3.意味着，所有的java类都具有java.lang.Object类中声明的功能


 */
public class ExtendsTest {
    public static void main(String[] args) {
        Person P1=new Person();
//        P1.age=1;
        P1.eat();

        Student S1=new Student();
        S1.eat();  //继承后就算没有在Student里声明，因为继承的person里有，依然也可以调用
        S1.study();
        S1.setAge(10);
        S1.getAge();
    }
}
